#include "Edytor.h"

Edytor::Edytor()
{
    opcja = 0;
    actI = actJ = 1;
    prevI = prevJ = 1;
    defI = 4;
    defJ = 4;
    
    gniazda.clear();
    nrGniazda = 1;
    tmpG = NULL;
    tmpP = NULL;
    gniazdoOd = gniazdoDo = -1;
}

Edytor::~Edytor()
{
                 
}


int Edytor::getNrGniazda(int i, int j)
{
     for (list<Gniazdo*>::iterator it = gniazda.begin(); it != gniazda.end(); ++it)
     {
         if ((*it)->getI() == i && (*it)->getJ() == j) return (*it)->getNr();
     }  
     return -1;
}

Gniazdo * Edytor::getGniazdoNr(int nr)
{
     for (list<Gniazdo*>::iterator it = gniazda.begin(); it != gniazda.end(); ++it)
     {
         if ((*it)->getNr() == nr) return (*it);
     }    
     return NULL;
}

bool Edytor::wstawGniazdo(Gniazdo * g)
{
         gniazda.push_back(g);
         return true;
}

Polaczenie * Edytor::getPolaczenie(int god, int gdo)
{
    Gniazdo * g = getGniazdoNr(god);
    Polaczenie * p;
    for (int j=0; j< g->getLiczbaPolaczen(); j++)
    {
        p = g->getPolaczenie(j);
        if (p->nrGniazda == gdo) return p;
    }
    return NULL;
    
}

void Edytor::edytujPolaczenie(Polaczenie * p, int nowePr)
{
     p->pr = nowePr;
}

void Edytor::usunPolaczenia(int nrDo)
{
     Polaczenie * p;
     for (list<Gniazdo*>::iterator it = gniazda.begin(); it != gniazda.end(); ++it)
     {
         (*it)->usunPolaczenie(nrDo);    
     }
}

void Edytor::nowaSiec()
{
    opcja = 0;
    actI = actJ = 1;
    prevI = prevJ = 1;
    defI = 4;
    defJ = 4;
    
    gniazda.clear();
    nrGniazda = 1;
    tmpG = NULL;
    tmpP = NULL;
    gniazdoOd = gniazdoDo = -1;   
}


